package com.hlj.ncp.warehouse.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hlj.ncp.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 库存信息对象 wms_stock
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_stock")
public class Stock extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 库存ID */
    @TableId(value = "stock_id", type = IdType.AUTO)
    private Long stockId;

    /** 商品ID */
    private Long productId;
    
    /** 商品名称 */
    private String productName;
    
    /** 商品编号 */
    private String productCode;

    /** 仓库ID */
    private Long warehouseId;
    
    /** 仓库名称 */
    private String warehouseName;

    /** 库区ID */
    private Long zoneId;

    /** 货架ID */
    private Long shelfId;

    /** 库存数量 */
    private BigDecimal quantity;

    /** 可用数量 */
    private BigDecimal availableQuantity;

    /** 锁定数量 */
    private BigDecimal lockedQuantity;
    
    /** 预警库存 */
    private BigDecimal warningQuantity;
    
    /** 单价 */
    private BigDecimal price;

    /** 生产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime productionDate;

    /** 过期日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime expiryDate;
    
    /** 最后入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    
    /** 最后出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastOutTime;

    /** 批次号 */
    private String batchNo;

    /** 存放位置 */
    private String locationCode;

    /** 状态（0正常 1待检 2冻结） */
    private String status;

    private String delFlag;
} 